• Home
  • Docker
  • Kubernetes
  • LLMs
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • Archived
Servlet/JSP | JSP - Objets implicites
  1. Introduction
  2. Les objets implicites "request", "response", "application", "session", et "config"
  3. L'objet implicite "pageContext"
  4. L'objet implicite "page"
  5. L'objet implicite "out"
  6. L'objet implicite "exception"

  1. Introduction
    Les objets implicites sont un ensemble de variables qui référencent des objets créés par défaut et sont disponibles dans la page JSP.

    Le conteneur de servlets ajoute implicitement les instructions de création de ces objets.
    Les références créées sont affectées à des variables locales à la méthode _jspService.
  2. Les objets implicites "request", "response", "application", "session", et "config"
    La variable "request" est envoyée en paramètre à la méthode _jspService.
    C'est une référence vers une instance de la classe javax.servlet.http.HttpServletRequest.

    La variable "response" est envoyée en paramètre à la méthode _jspService.
    C'est une référence vers une instance de la classe javax.servlet.http.HttpServletResponse.

    La variable "application" est une référence vers une instance de la classe javax.servlet.ServletContext.

    La variable "session" est une référence vers une instance de la classe javax.servlet.http.HttpSession.

    La variable "config" est une référence vers une instance de la classe javax.servlet.ServletConfig.
  3. L'objet implicite "pageContext"
    La variable "pageContext" est une référence sur l'instance de la classe de type javax.servlet.jsp.PageContext.
    L'instance créée correspond à une implémentation de la classe javax.servlet.jsp.PageContext (spécifique aux conteneurs des servlets).
    La classe offre un ensemble de méthodes pour accéder aux objets implicites de la page ainsi que des méthodes pour inclure ou rediriger vers d'autres ressources.
    La classe offre aussi des méthodes pour gérer des attributs du scope de la page ainsi que les autres scopes (APPLICATION, SESSION, REQUEST).
    Voici les méthodes qui permettent de gérer les attributs :

    • void setAttribute(String ATTRIBUTE_NAME, Object ATTRIBUTE_VALUE)
      - ATTRIBUTE_NAME : Nom de l'attribut qui sera mappé avec l'objet (spécifié par le paramètre ATTRIBUTE_VALUE) dans le scope PAGE.
      - ATTRIBUTE_VALUE : si la valeur de ce paramètre est null, alors l'attribut sera supprimé (même effet que removeAttribute(String ATTRIBUTE_NAME)).
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.

    • void setAttribute(String ATTRIBUTE_NAME, Object ATTRIBUTE_VALUE, int ATTRIBUTE_SCOPE)
      - ATTRIBUTE_NAME : Nom de l'attribut qui sera mappé avec l'objet (spécifié par le paramètre ATTRIBUTE_VALUE) dans le scope précisé avec le paramètre ATTRIBUTE_SCOPE.
      - ATTRIBUTE_VALUE : si la valeur de ce paramètre est null, alors l'attribut sera supprimé (même effet que removeAttribute(String ATTRIBUTE_NAME, int ATTRIBUTE_SCOPE)).
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.
      - Lance l'exception java.lang.IllegalArgumentException si le scope est invalide.
      - Lance l'exception java.lang.IllegalStateException si le scope est SESSION et la session est invalide.

    • void removeAttribute(String ATTRIBUTE_NAME)
      - ATTRIBUTE_NAME : Nom de l'attribut à supprimer du scope PAGE.
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.

    • void removeAttribute(String ATTRIBUTE_NAME, int ATTRIBUTE_SCOPE)
      - ATTRIBUTE_NAME : Nom de l'attribut à supprimer du scope précisé avec le paramètre ATTRIBUTE_SCOPE.
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.
      - Lance l'exception java.lang.IllegalArgumentException si le scope est invalide.
      - Lance l'exception java.lang.IllegalStateException si le scope est SESSION et la session est invalide.

    • Object getAttribute(String ATTRIBUTE_NAME)
      - Retourne l'objet associé à l'attribut ATTRIBUTE_NAME.
      - Retourne null si aucun attribut avec ce nom n'existe dans le scope PAGE.
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.

    • Object getAttribute(String ATTRIBUTE_NAME, int ATTRIBUTE_SCOPE)
      - Retourne l'objet associé à l'attribut ATTRIBUTE_NAME.
      - Retourne null si aucun attribut avec ce nom n'existe dans le scope précisé avec le paramètre ATTRIBUTE_SCOPE.
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.
      - Lance l'exception java.lang.IllegalArgumentException si le scope est invalide.
      - Lance l'exception java.lang.IllegalStateException si le scope est SESSION et la session est invalide.

    • Object findAttribute(String ATTRIBUTE_NAME)
      - Retourne l'objet associé à l'attribut ATTRIBUTE_NAME si présent dans les scopes PAGE, REQUEST, SESSION, ou APPLICATION.
      - Retourne null si aucun attribut avec ce nom n'existe dans aucun scope.
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.

    • Enumeration<String> getAttributeNamesInScope(int ATTRIBUTE_SCOPE)
      - Retourne une énumération contenant les noms de tous les attributs du scope précisé avec le paramètre ATTRIBUTE_SCOPE.
      - Retourne une énumération vide si aucun attributs n'existent dans le scope précisé.
      - Lance l'exception java.lang.IllegalArgumentException si le scope est invalide.
      - Lance l'exception java.lang.IllegalStateException si le scope est SESSION et la session est invalide.

    • int getAttributesScope(String ATTRIBUTE_NAME)
      - Retourne le scope associé à l'attribut ATTRIBUTE_NAME si présent dans les scopes PAGE, REQUEST, SESSION, ou APPLICATION.
      - Retourne 0 si aucun attribut avec ce nom n'existe dans aucun scope.
      - Lance l'exception java.lang.NullPointerException si la valeur du paramètre ATTRIBUTE_NAME est null.

    Notes : Les valeurs du paramètre ATTRIBUTE_SCOPE sont définies dans la classe javax.servlet.jsp.PageContext :
    - PageContext.PAGE_SCOPE (public static final int PAGE_SCOPE)
    - PageContext.REQUEST_SCOPE (public static final int REQUEST_SCOPE)
    - PageContext.SESSION_SCOPE (public static final int SESSION_SCOPE)
    - PageContext.APPLICATION_SCOPE (public static final int APPLICATION_SCOPE)

    Remarques concernant l'utilisation de ces méthodes :
    • Le nom de l'attribut peut être n'importe quelle chaîne de caractères. Mais il est conseillé de composer le nom de l'attribut par le nom du domaine et le nom de l'application web, par exemple "com.mtitek.MYWEBAPPLI.MYATTRIBUTENAME".

    • Il y a cependant des noms d'attributs qui sont réservés par la spécification Servlet et ne peuvent pas être utilisés. Cela concerne tous les noms qui sont préfixés par « java.* », « javax.* », et « sun.* ».

    • Il n'est pas possible d'avoir deux attributs avec le même nom pour le même scope ; si la méthode setAttribute est appelée avec un nom d'un attribut déjà existant, alors la valeur de ce dernier sera remplacée par la nouvelle valeur.

  4. L'objet implicite "page"
    La variable "page" est une référence sur l'instance de la page JSP créée par le conteneur de servlets.
    Comme toute page JSP est convertie en une classe Servlet, il est possible de faire un cast explicite de cette variable vers une autre variable de type HttpServlet ou httpJspPage.
  5. L'objet implicite "out"
    La variable "out" est utilisée pour écrire dans le buffer de sortie de la réponse.
    La variable est de type javax.servlet.jsp.JspWriter et il se distingue du type java.io.PrintWriter par le fait qu'il permet de garder un buffer du contenu de la réponse jusqu'à la fin du traitement de la page.
    À noter que la variable est utilisée implicitement pour l'écriture du texte statique de la page JSP ainsi que la partie dynamique.
    Page JSP : "page1.jsp"

    Le code Java généré pour la page d'erreur est :
  6. L'objet implicite "exception"
    La variable "exception" est créée uniquement pour les pages JSP marquées comme des pages d'erreurs :

    Le code Java généré pour la page d'erreur est :

    Notes : la page d'erreur JSP est appelée indirectement par le conteneur de servlets lorsqu'une erreur survienne dans une page JSP et que cette page désigne explicitement une page d'erreur.

    Page JSP : "page1.jsp"

    Page d'erreur JSP : "errpage1.jsp"
© 2025  mtitek